/* Decorative effects only: no extra button children or interaction handlers. */
html[data-theme] body .glow-button {
  --glow-rgb: 19 136 255;
  --glow-from: var(--fill-blue-start);
  --glow-to: var(--fill-blue-end);
  --glow-edge: #39b1ff;
  --glow-ink: var(--on-blue);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: box-shadow .22s ease, border-color .22s ease, transform .18s ease;
}
html[data-theme] body .glow-button:is(.btn.primary, .btn.danger, .btn.success, .btn.violet-outline, .btn.gold-outline, .deck-action) {
  color: var(--glow-ink);
  border: 1px solid var(--glow-edge);
  background: linear-gradient(135deg, var(--glow-from), var(--glow-to));
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 30%), inset 0 -1px 0 rgb(0 8 24 / 16%), 0 0 12px rgb(var(--glow-rgb) / 32%), 0 5px 26px rgb(var(--glow-rgb) / 20%);
  text-shadow: none;
}
html[data-theme] body .glow-button:is(.btn.danger, .deck-scarlet) {
  --glow-rgb: 255 41 65;
  --glow-from: var(--fill-red-start);
  --glow-to: var(--fill-red-end);
  --glow-edge: #ff4d5c;
  --glow-ink: var(--on-red);
}
html[data-theme] body .glow-button:is(.btn.success, .deck-emerald) {
  --glow-rgb: 0 235 135;
  --glow-from: var(--fill-green-start);
  --glow-to: var(--fill-green-end);
  --glow-edge: #3dffa0;
  --glow-ink: var(--on-green);
}
html[data-theme] body .glow-button:is(.btn.violet-outline, .deck-violet) {
  --glow-rgb: 162 85 255;
  --glow-from: var(--fill-violet-start);
  --glow-to: var(--fill-violet-end);
  --glow-edge: #b878ff;
  --glow-ink: var(--on-violet);
}
html[data-theme] body .glow-button:is(.btn.gold-outline, .deck-amber) {
  --glow-rgb: 255 207 18;
  --glow-from: var(--fill-gold-start);
  --glow-to: var(--fill-gold-end);
  --glow-edge: #ffe052;
  --glow-ink: var(--on-gold);
}
html[data-theme] body .glow-button.deck-cobalt {
  --glow-rgb: 71 122 255;
  --glow-from: #174ac0;
  --glow-to: #102e79;
  --glow-edge: #7fafff;
}
html[data-theme] body .glow-button.btn.outline {
  color: #dff3ff;
  background: linear-gradient(135deg, #073653, #032138);
  border-color: #388cc0;
  box-shadow: inset 0 1px 0 #70cfff14, 0 0 12px #1286d41f;
}
html[data-theme="light"] body .glow-button.btn.outline {
  color: #154668;
  background: linear-gradient(135deg, #f8fdff, #dceffd);
  border-color: #519ac8;
  box-shadow: inset 0 1px 0 #fff, 0 3px 13px #087fcc1c;
  text-shadow: none;
}
html[data-theme] body .glow-button::after {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  inline-size: 44%;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(110deg, transparent, rgb(255 255 255 / 23%), transparent);
  transform: translateX(-160%) skewX(-17deg);
  transition: transform .72s ease, opacity .2s ease;
}
html[dir="rtl"] body .glow-button::after { inset-inline-start: auto; left: 0; }
html[data-theme] body .glow-button:focus-visible {
  outline: 2px solid var(--glow-edge);
  outline-offset: 4px;
  box-shadow: inset 0 1px 0 #ffffff40, 0 0 0 4px rgb(var(--glow-rgb) / 14%), 0 0 23px rgb(var(--glow-rgb) / 31%);
}
html[data-theme] body .glow-button:not(:disabled):not([aria-disabled="true"]):active { transform: translateY(1px) scale(.99); }
html[data-theme] body .glow-button:is(:disabled, [aria-disabled="true"]) {
  opacity: .55;
  box-shadow: none;
  text-shadow: none;
  transform: none;
}
html[data-theme] body .glow-button:is(:disabled, [aria-disabled="true"])::after { animation: none; opacity: 0; }
html[data-theme] body .reference-hero .glow-button.primary::after { animation: whales-button-sheen 8s ease-in-out infinite; }

html[data-theme] body .glow-panel {
  --frame-rgb: 38 150 255;
  position: relative;
  border-color: rgb(var(--frame-rgb) / 30%);
  box-shadow: inset 0 1px 0 rgb(151 222 255 / 7%), 0 0 15px rgb(var(--frame-rgb) / 7%), 0 7px 25px rgb(0 5 15 / 13%);
  transition: border-color .25s ease, box-shadow .25s ease;
}
html[data-theme="light"] body .glow-panel {
  border-color: rgb(44 132 191 / 31%);
  box-shadow: inset 0 1px 0 #ffffffd9, 0 4px 18px rgb(15 100 166 / 9%);
}
@supports (mask-composite: exclude) or (-webkit-mask-composite: xor) {
  html[data-theme] body .glow-panel::after {
    all: unset;
    content: "";
    display: block;
    box-sizing: border-box;
    position: absolute;
    inset: -1px;
    padding: 1px;
    border-radius: inherit;
    pointer-events: none;
    z-index: 3;
    background: linear-gradient(115deg, transparent 9%, rgb(var(--frame-rgb) / 22%) 22%, rgb(154 224 255 / 90%) 29%, rgb(var(--frame-rgb) / 72%) 33%, transparent 48%, transparent 65%, rgb(var(--frame-rgb) / 48%) 83%, transparent 96%);
    background-size: 200% 200%;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude;
    opacity: .65;
    transition: opacity .25s ease;
  }
  html[data-theme] body :is(.deck-welcome, .deck-actions-panel, .landing-cta).glow-panel::after {
    animation: whales-border-breathe 7s ease-in-out infinite;
  }
  html[data-theme] body .deck-actions-panel.glow-panel::after { animation-delay: -3.5s; }
  html[data-theme="light"] body .glow-panel::after { opacity: .48; }
}
html[data-theme] body :is(.deck-core, .hud-core) > img {
  transform-origin: 50% 60%;
  animation: whales-logo-drift 7.2s ease-in-out infinite;
}
html[data-theme] body .hud-core > img { animation-delay: -2.5s; }

@media (hover: hover) and (pointer: fine) {
  html[data-theme] body .glow-button:not(:disabled):not([aria-disabled="true"]):hover {
    transform: translateY(-2px);
    border-color: var(--glow-edge);
    box-shadow: inset 0 1px 0 #ffffff59, 0 0 13px rgb(var(--glow-rgb) / 43%), 0 7px 28px rgb(var(--glow-rgb) / 27%);
  }
  html[data-theme] body .glow-button:not(:disabled):not([aria-disabled="true"]):hover::after { transform: translateX(360%) skewX(-17deg); opacity: 1; }
  html[data-theme] body .glow-panel:hover,
  html[data-theme] body .glow-panel:focus-within {
    border-color: rgb(var(--frame-rgb) / 67%);
    box-shadow: inset 0 1px 0 #a5e0ff21, 0 0 19px rgb(var(--frame-rgb) / 17%), 0 8px 30px rgb(0 5 15 / 12%);
  }
  html[data-theme] body .glow-panel:hover::after,
  html[data-theme] body .glow-panel:focus-within::after { opacity: .95; animation: whales-border-travel 6s linear infinite; }
}
@keyframes whales-button-sheen {
  0%, 70% { opacity: 0; transform: translateX(-160%) skewX(-17deg); }
  74% { opacity: .8; }
  88% { opacity: .8; transform: translateX(360%) skewX(-17deg); }
  90%, 100% { opacity: 0; transform: translateX(360%) skewX(-17deg); }
}
@keyframes whales-border-breathe { 0%, 100% { opacity: .35; } 50% { opacity: .88; } }
@keyframes whales-border-travel { from { background-position: 0% 0%; } to { background-position: 200% 200%; } }
@keyframes whales-logo-drift {
  0%, 100% { transform: translateY(0) rotate(-.6deg) scale(1); }
  50% { transform: translateY(-4px) rotate(.6deg) scale(1.025); }
}
@media (max-width: 767px) {
  html[data-theme] body .glow-panel { box-shadow: inset 0 1px 0 #a5e0ff12, 0 0 10px rgb(var(--frame-rgb) / 8%); }
  html[data-theme] body .glow-panel::after,
  html[data-theme] body .reference-hero .glow-button.primary::after { animation: none; }
  html[data-theme] body :is(.deck-core, .hud-core) > img { animation-duration: 9s; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme] body :is(.deck-core, .hud-core) > img,
  html[data-theme] body .glow-panel::after,
  html[data-theme] body .glow-button::after { animation: none !important; transform: none !important; }
  html[data-theme] body .glow-panel,
  html[data-theme] body .glow-button,
  html[data-theme] body .glow-panel::after,
  html[data-theme] body .glow-button::after { transition: none !important; }
  html[data-theme] body .glow-button::after { opacity: 0 !important; }
  html[data-theme] body .glow-button:hover,
  html[data-theme] body .glow-button:active { transform: none !important; }
}
/* Dashboard orbital accents stay behind the stationary navigation targets. */
html[data-theme] body[data-page="dashboard"] .deck-sweep-clip::before,
html[data-theme] body[data-page="dashboard"] .deck-sweep-clip::after {
  content: '';
  position: absolute;
  inset: 10%;
  border-radius: 50%;
  pointer-events: none;
  background: conic-gradient(from 12deg, transparent 0deg 30deg, #168dff 57deg, #a2edff 66deg, transparent 68deg 198deg, #168dff 226deg, #75dbff 236deg, transparent 238deg);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1px));
  opacity: .8;
  animation: whales-orbit-turn 32s linear infinite;
}

html[data-theme] body[data-page="dashboard"] .deck-sweep-clip::after {
  inset: 27%;
  background: conic-gradient(from 150deg, transparent 0deg 20deg, #0079ff 62deg, #88eaff 83deg, transparent 85deg 220deg, #086dcc 254deg, transparent 256deg);
  animation-duration: 23s;
  animation-direction: reverse;
  opacity: .65;
}

html[data-theme] body[data-page="dashboard"] .deck-node::after {
  content: '';
  position: absolute;
  inset: -2px;
  border: 1px solid rgb(var(--node-rgb, 0 190 255) / .85);
  border-radius: 50%;
  pointer-events: none;
  box-shadow: 0 0 13px rgb(var(--node-rgb, 0 190 255) / .48), inset 0 0 7px rgb(var(--node-rgb, 0 190 255) / .18);
  opacity: .12;
  animation: whales-node-signal 18s ease-in-out infinite;
}

html[data-theme] body[data-page="dashboard"] .deck-node:nth-of-type(2)::after { animation-delay: -16s; }
html[data-theme] body[data-page="dashboard"] .deck-node:nth-of-type(3)::after { animation-delay: -14s; }
html[data-theme] body[data-page="dashboard"] .deck-node:nth-of-type(4)::after { animation-delay: -12s; }
html[data-theme] body[data-page="dashboard"] .deck-node:nth-of-type(5)::after { animation-delay: -10s; }
html[data-theme] body[data-page="dashboard"] .deck-node:nth-of-type(6)::after { animation-delay: -8s; }
html[data-theme] body[data-page="dashboard"] .deck-node:nth-of-type(7)::after { animation-delay: -6s; }
html[data-theme] body[data-page="dashboard"] .deck-node:nth-of-type(8)::after { animation-delay: -4s; }
html[data-theme] body[data-page="dashboard"] .deck-node:nth-of-type(9)::after { animation-delay: -2s; }

html[data-theme="light"] body[data-page="dashboard"] .deck-sweep-clip::before,
html[data-theme="light"] body[data-page="dashboard"] .deck-sweep-clip::after { opacity: .5; }

html[data-theme] body[data-page="dashboard"] .deck-node:focus-visible::after {
  animation: none;
  opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
  html[data-theme] body[data-page="dashboard"] .deck-node:hover::after {
    animation: none;
    opacity: 1;
  }
}

@keyframes whales-orbit-turn {
  to { transform: rotate(360deg); }
}

@keyframes whales-node-signal {
  0%, 22%, 100% { opacity: .12; }
  10% { opacity: .85; }
}

@media (max-width: 600px) {
  html[data-theme] body[data-page="dashboard"] .deck-sweep-clip::before { animation-duration: 44s; }
  html[data-theme] body[data-page="dashboard"] .deck-sweep-clip::after { animation-duration: 34s; }
  html[data-theme] body[data-page="dashboard"] .deck-node::after {
    box-shadow: 0 0 7px rgb(var(--node-rgb, 0 190 255) / .35);
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme] body[data-page="dashboard"] .deck-sweep-clip::before,
  html[data-theme] body[data-page="dashboard"] .deck-sweep-clip::after,
  html[data-theme] body[data-page="dashboard"] .deck-node::after {
    animation: none !important;
  }
  html[data-theme] body[data-page="dashboard"] .deck-node::after { opacity: .2; }
}

/* Resting border illumination and a more visible central logo float. */
html[data-theme="dark"] body[data-page] .glow-panel {
  border-color: rgb(76 179 244 / .66);
  box-shadow: inset 0 1px 0 rgb(175 229 255 / .18),
    0 0 0 1px rgb(43 160 246 / .14),
    0 0 18px rgb(20 135 255 / .27),
    0 0 38px rgb(0 113 234 / .16),
    0 16px 38px rgb(0 0 0 / .22);
}

html[data-theme="light"] body[data-page] .glow-panel {
  border-color: rgb(27 130 200 / .52);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .85),
    0 0 0 1px rgb(26 140 226 / .1),
    0 0 16px rgb(19 130 232 / .16),
    0 0 30px rgb(0 117 222 / .09),
    0 10px 24px rgb(24 66 94 / .09);
}

html[data-theme] body[data-page] .glow-panel::after { opacity: .72; }
html[data-theme="light"] body[data-page] .glow-panel::after { opacity: .52; }

html[data-theme] body[data-page] :is(.deck-welcome, .deck-actions-panel, .landing-cta)::after {
  animation-name: whales-border-aura;
}

html[data-theme] body[data-page] :is(.deck-core, .hud-core) > img {
  --logo-rise: -14px;
  --logo-mid-rise: -7px;
  --logo-sway: 3px;
  transform-origin: 50% 60%;
  animation: whales-logo-float 5.2s ease-in-out infinite;
}

html[data-theme] body[data-page] .hud-core > img { animation-delay: -1.3s; }

@keyframes whales-border-aura {
  0%, 100% { opacity: .58; }
  50% { opacity: .92; }
}

@keyframes whales-logo-float {
  0%, 100% { transform: translate3d(-2px, 3px, 0) rotate(-3deg) scale(1); }
  25% { transform: translate3d(1px, var(--logo-mid-rise), 0) rotate(0deg) scale(1.025); }
  50% { transform: translate3d(var(--logo-sway), var(--logo-rise), 0) rotate(3deg) scale(1.055); }
  75% { transform: translate3d(-1px, var(--logo-mid-rise), 0) rotate(0deg) scale(1.025); }
}

@media (max-width: 600px) {
  html[data-theme] body[data-page] :is(.deck-core, .hud-core) > img {
    --logo-rise: -9px;
    --logo-mid-rise: -4px;
    --logo-sway: 2px;
    animation-duration: 5.8s;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme] body[data-page] :is(.deck-core, .hud-core) > img {
    animation: none !important;
    transform: none;
  }
  html[data-theme] body[data-page] :is(.deck-welcome, .deck-actions-panel, .landing-cta)::after {
    animation: none !important;
    opacity: .65;
  }
}
